{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_moead:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## MOEA/D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from jmetal.algorithm.multiobjective.moead import MOEAD\n",
    "from jmetal.operator import PolynomialMutation, DifferentialEvolutionCrossover\n",
    "from jmetal.problem import LZ09_F2\n",
    "from jmetal.util.aggregative_function import Tschebycheff\n",
    "from jmetal.util.termination_criterion import StoppingByEvaluations\n",
    "\n",
    "problem = LZ09_F2()\n",
    "\n",
    "max_evaluations = 150000\n",
    "\n",
    "algorithm = MOEAD(\n",
    "    problem=problem,\n",
    "    population_size=300,\n",
    "    crossover=DifferentialEvolutionCrossover(CR=1.0, F=0.5, K=0.5),\n",
    "    mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),\n",
    "    aggregative_function=Tschebycheff(dimension=problem.number_of_objectives),\n",
    "    neighbor_size=20,\n",
    "    neighbourhood_selection_probability=0.9,\n",
    "    max_number_of_replaced_solutions=2,\n",
    "    weight_files_path='resources/MOEAD_weights',\n",
    "    termination_criterion=StoppingByEvaluations(max=max_evaluations)\n",
    ")\n",
    "\n",
    "algorithm.run()\n",
    "solutions = algorithm.get_result()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now visualize the Pareto front approximation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from jmetal.lab.visualization.plotting import Plot\n",
    "from jmetal.util.solution import get_non_dominated_solutions\n",
    "\n",
    "front = get_non_dominated_solutions(solutions)\n",
    "    \n",
    "plot_front = Plot(plot_title='Pareto front approximation', axis_labels=['x', 'y'])\n",
    "plot_front.plot(front, label='MOEAD-LZ09_F2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### API"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%% raw\n"
    },
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. autoclass:: jmetal.algorithm.multiobjective.moead.MOEAD\n",
    "   :members:\n",
    "   :undoc-members:\n",
    "   :show-inheritance:\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
